Appearance
前言
由于搞了一些开源工具,需要一个统一的文档管理,入了vitepress写文档的坑。目前的开源内容有一系列的config文件,集中在@xunserver/config 这个仓库中,通过pnpm管理,每个包都有自己的reameme.md 和changelog.md。 还有个仓库存放了icon,style和vui的代码,目前有下面的痛点。
- doc是一个单独仓库只存放文档,文档中还需要引入各个包的readme.md已经changelog。
- 除了changelog外,对vui的还需要进行组件的引入,对于style还需要样式的引入。
- 目前的doc和vui存放在一起通过pnpm的方式引入。
git submodule
git submodule 相当于将某个仓库的某个commit作为模块添加项目中,而且对项目透明,项目本身不能去修改。
git submodule add
添加submodule到项目中,执行后git 会下载子模块到项目中。同时生成.gitmodule文件来记录关系
git submodule init
根据.gitmodule文件下载子项目,通常用来父项目第一次拉取后
git submodule deinit
清空子项目代码但是不删除.gitmodule中的关系
git submodule update
根据.gitmodule 中记录的子项目的commit下载子项目的代码,通过git submodule update --remote 总是根据远端的来下载。通常情况下如果子项目更新后,父项目能够感知到子项目的最新commit,并且会生成一个差异文件,如果差异文件被提交。另一个合作伙伴需要根据最新的commit的下载代码
git submodule foreach
批量操作子项目,git submodule foreach "echo $name"
git rm path
删除子项目
解决办法
doc文档有两种情况是需要更新的
- 相关的readme或者组件变更,doc本身无需变更。这种情况doc设置一个每天自动重新构建即可。
- doc本身需要变更,变更部分内容。这种需要doc发布后触发重新构建
- 手动更新
doc文档
doc文档使用的vitepress, 可以在文档中直接引入vue3代码,同时还支持markdown引用。这两个可以引入其他的包的说明文档和vui组件的文档。
